通过统计7万多真实人名生成可信的随机人名

您所在的位置:网站首页 姓名 随机 通过统计7万多真实人名生成可信的随机人名

通过统计7万多真实人名生成可信的随机人名

2024-07-14 20:59| 来源: 网络整理| 查看: 265

简介

随机生成人名有很多应用场景,比如数据库系统学习,网络攻防等。为了生成真实可信的人名,本文通过对约7.1万真实的人名进行频率学习,统计出最常用的100个姓,100个男名和100个女名(均为双字),然后通过随机提取姓和名的组合,可以生成看上去非常真实的姓名,比如:

注:如果需要更多的真实人名信息,可以与我联系(18815694732)。

---------------------------------男名--------------------------------- 赵 杰,姜子豪,马 龙,蔡兵兵,张飞龙,黄伟伟,崔明明,袁志文,田志刚,程 峰, 崔彬彬,袁飞龙,宋飞飞,罗 明,王翔宇,夏 文,张 龙,汪 豪,吕家乐,陆冬冬, 代鹏程,苏小龙,吴志远,宋兵兵,黄 宏,尹玉龙,金 龙,孟飞龙,毛东东,吕一鸣, 丁文强,林 兵,贾海峰,陶成龙,王志强,黄文浩,顾 远,白国强,石旭东,廖 东, 曹 家,肖超群,袁飞飞,陆 明,白宇轩,卢 帅,宋 乐,万文杰,史洋洋,尹志文, 余 豪,闫鹏飞,章雪峰,毛建军,史晓东,张志远,许海军,钟飞龙,钟成成,周亮亮, 谢浩宇,蔡 仁,江腾飞,郭永康,曾 阳,冯晓东,唐 强,黄海波,杨晓龙,林家乐, 洪明明,梁 文,汪小龙,储永康,陈浩宇,叶 龙,孔志强,潘 杰,尹子龙,胡 玉, 周 世,熊 飞,杨 龙,陆文龙,蒋 强,邵 海,万凯旋,汤 东,卢一凡,金文龙, 郭 玉,闫振宇,陈 世,袁 文,顾文博,史海军,戴 乐,顾文豪,韩 志,施永康, ---------------------------------女名--------------------------------- 刘青青,徐文娟,韦雪晴,闫 文,付 雪,郝 心,韦心怡,钱美玲,吴文丽,叶雪婷, 姜娜娜,邵 莹,黄 海,牛萍萍,方梦雅,江欣雨,杨 晴,于慧敏,赵 荣,郑思雨, 廖 翠,何 玲,郑 佳,肖 梦,朱 明,梁 珍,范文丽,余安琪,魏 慧,段婷婷, 段玉洁,汪园园,钱 媛,白莹莹,曾玲玲,夏婷婷,贾 兰,胡乐乐,许 兰,任 梦, 彭璐璐,罗明珠,廖雯雯,朱 娜,邹娟娟,苏欣悦,代圆圆,贾璐璐,陆亚玲,万思琪, 吕 晶,董 兰,万亚玲,郭婷婷,白晶晶,毛 燕,陶 娟,储欢欢,薛安琪,江雨婷, 沈亚男,熊明月,陶媛媛,姜曼曼,段雯雯,吴姗姗,姚 婷,曹珍珍,毛 慧,苏 敏, 韦兰兰,彭欣雨,钱 园,孟思雨,施 慧,胡梦雨,郑欣欣,李 雪,王慧敏,常 楠, 宋 春,陈静静,章文静,储文娟,王雪婷,汪娇娇,金 欣,施思雨,魏 丽,曹婉莹, 马婉莹,曹乐乐,曹曼曼,尹 君,姜 娟,唐珊珊,侯乐乐,段雅倩,黄梦婷,冯甜甜, 生成代码

首先,通过 surnames, mnames 和 fnames 记录了最经常使用的100个姓,男名和女名。然后通过 get_name(gender)函数进行随机生成 。gender表示性别,如果是’r’则随机,否则 ‘m’ 表示男性,‘f’ 表示女性。生成函数并不复杂,不再细表。

#encoding=utf-8 import random surnames=list('王张李刘陈吴朱杨周徐胡赵孙黄汪马郭何许程郑高谢丁宋曹余方董潘韩沈夏唐叶任蒋姚范魏彭袁杜陶蔡梁冯江罗邓崔吕陆林钱石金葛尹田章卢于苏贾邵姜汤秦肖段侯付史戴孟储武孔薛万韦郝洪闫曾殷顾施邹牛代白熊邢常毛严廖钟') mnames=list('俊杰鹏飞志强志伟文杰小龙浩然文龙鹏程子豪志远旭东冬冬帅帅宇航海涛明明强强亮亮海洋志鹏浩宇博文龙飞海波洋洋文涛国庆腾飞成龙云龙彬彬云飞晓东文强振宇宏伟凯旋新宇志豪志成海峰晓龙文祥金龙永康志勇建国天宇东东玉龙海龙家乐子健国栋自强文豪建军兵兵乐乐星宇壮壮向阳伟伟亚飞志文志刚佳乐浩东国强翔宇文浩亚东飞飞雪峰阳阳成成家伟宇轩子龙天赐伟杰佳伟世杰一鸣鹏鹏涛涛永强朝阳晨晨文韬文斌亚军一凡文博思远仁杰飞龙超群海军') fnames=list('婷婷晶晶丹丹倩倩媛媛文静佳佳莹莹玲玲慧慧丽丽雨婷盼盼雨晴梦婷晴晴慧敏珊珊海燕娜娜苗苗甜甜静静玉婷贝贝青青欢欢思雨姗姗文娟雅婷雪梅莉莉玉洁萍萍安琪圆圆丽娟露露雨欣莎莎芳芳娇娇园园静雯梦瑶曼曼佳慧美玲璐璐梦雅文文慧玲心怡亚玲丽萍翠翠欣欣文慧双双亚男丽娜珍珍梦梦晨晨晓燕文丽兰兰丽君雪晴雪婷荣荣梦雪梦雨明珠思琪子怡娟娟培培璐瑶欣雨春燕明月文倩婉莹佳敏亚萍雯雯雅倩盈盈欣悦楠楠梦蝶晓丽文婷思佳佳欣亚楠云云乐乐') def get_name(gender='r'): name = surnames[random.randint(1, len(surnames)) - 1] if gender == 'r': gender = 'm' if random.random() > 0.47 else 'f' lst=mnames if gender== 'm' else fnames p = (random.randint(1, len(lst)/2) - 1) * 2 if random.random() > 0.3311: # 统计的结果71747人后发现33.11%姓名为2个字 name += lst[p] + lst[p+1] else: name += ' '+ lst[p + (1 if random.random() > 0.5 else 0)] return name, gender print('男名'.center(68, '-')) for _ in range(10): for _ in range(10): print(get_name('m')[0], end=',') print() print('\n' + '女名'.center(68, '-')) for _ in range(10): for _ in range(10): print(get_name('f')[0], end=',') print() 补充:关于静态函数变量

顺便提一句,我们通常不喜欢全局的变量,上面三个名称就是全局变量。由于python没有直接提供函数内部的静态变量,所以也无法直接定义在函数内容。但是python提供了函数属性,可以当作静态变量来使用,可以改写如下:

def get_name(gender='r'): if not hasattr(get_name,'surnames'): get_name.surnames=list('王张李刘陈吴...') get_name.mnames=list('俊杰鹏飞志...') get_name.fnames=list('婷婷晶晶丹丹倩...') name = get_name.surnames[random.randint(1, len(get_name.surnames)) - 1] if gender == 'r': gender = 'm' if random.random() > 0.47 else 'f' lst=get_name.mnames if gender== 'm' else get_name.fnames p = (random.randint(1, len(lst)/2) - 1) * 2 if random.random() > 0.3311: # 统计的结果71747名学生后发现只有33.11%的学生姓名为2个字 name += lst[p] + lst[p+1] else: name += ' '+ lst[p + (1 if random.random() > 0.5 else 0)] return name, gender

在使用的时候,加上函数名称即可。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3